home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 February / Macworld (1998-02).dmg / Inside Macworld / Alphamania 2 & Effector Sets / AlphaMania 2 / Set FX.dir / 00081_Script_Slider Bar < prev    next >
Text File  |  1997-12-19  |  4KB  |  127 lines

  1. property pThumbSprite, pFillSprite, pArrowsSprite, pTextSprite, pTextField, pCurVal, pExtraChar, pActive, pCallBackObj, pRefcon
  2. property pRange, pMin, pMax, pSliderLeft, pSliderWidth
  3.  
  4. on new me, propList
  5.   set pFillSprite = getAProp(propList,#fillSprite)
  6.   set pThumbSprite = getAProp(propList,#thumbSprite)
  7.   set pArrowsSprite = getAProp(propList,#arrowsSprite)
  8.   set pTextSprite = getAProp(propList,#textSprite)
  9.   set pTextField = getAProp(propList,#textField)
  10.   set pMin = getAProp(propList,#min)
  11.   set pMax = getAProp(propList,#max)
  12.   set pCurVal = getAProp(propList, #cur)
  13.   set pSliderLeft = getAProp(propList,#left)
  14.   set pSliderWidth = getAProp(propList,#width)
  15.   set pExtraChar = getAProp(propList,#suffix)
  16.   set pActive = getAProp(propList,#active)
  17.   set pCallBackObj = getAProp(propList,#callback)
  18.   set pRefCon = getAProp(propList,#ref)
  19.   
  20.   set pRange = pMax - pMin
  21.   setVal(me,pCurVal)
  22.   setEnabled(me,pActive)
  23.   
  24.   return(me)
  25. end
  26.  
  27. on wait me, waitTime
  28.   put the ticks into t
  29.   repeat while the ticks < t+waitTime
  30.   end repeat
  31. end
  32.  
  33. on Arrows me
  34.   if not pActive then exit
  35.   put the locH of the clickLoc into h1
  36.   put the locH of sprite the clickOn into h2
  37.   if h1 < h2 then
  38.     put "left" into side
  39.     put -1 into d
  40.   else
  41.     put "right" into side
  42.     put 1 into d
  43.   end if
  44.   set the member of sprite pArrowsSprite = member ("horizArrows"&&side)
  45.   set newVal = max(min(pCurVal+d,pMax),pMin)
  46.   setVal(me,newVal)
  47.   if objectP(pCallBackObj) then DoDrag(pCallBackObj, pRefcon, newVal)
  48.   updateStage
  49.   wait(me,5)
  50.   repeat while the stillDown
  51.     if rollover(pArrowsSprite) then
  52.       set the member of sprite pArrowsSprite = member ("horizArrows"&&side)
  53.       set pCurVal = max(min(pCurVal+d,pMax),pMin)
  54.     else
  55.       set the member of sprite pArrowsSprite = member "horizArrows"
  56.     end if
  57.     setVal(me,pCurVal)
  58.     if objectP(pCallBackObj) then DoDrag(pCallBackObj, pRefcon, newVal)
  59.     wait(me,5)
  60.   end repeat
  61.   set the member of sprite pArrowsSprite = member "horizArrows"
  62.   if objectP(pCallBackObj) then EndChange(pCallBackObj)
  63. end
  64.  
  65.  
  66. on Drag me
  67.   if not pActive then exit
  68.   repeat while the stillDown
  69.     put min(max(the mouseH,pSliderLeft),pSliderLeft+pSliderWidth) into h
  70.     set the locH of sprite pThumbSprite = h
  71.     setFill(me)
  72.     updateStage
  73.     set loc = the locH of sprite pThumbSprite - pSliderLeft   
  74.     set pCurVal = ((pRange*loc)/(pSliderWidth))+pMin   
  75.     TextOut(me)
  76.     if objectP(pCallBackObj) then DoDrag(pCallBackObj, pRefcon, pCurVal)
  77.   end repeat
  78.   if objectP(pCallBackObj) then EndChange(pCallBackObj)
  79. end
  80.  
  81. on setFill me
  82.   puppetSprite pFillSprite, TRUE
  83.   
  84.   put the rect of sprite pFillSprite into fillRect
  85.   set the right of fillRect = the locH of sprite pThumbSprite
  86.   set the left of fillRect = pSliderLeft
  87.   set the rect of sprite pFillSprite = fillRect
  88. end
  89.  
  90. on CalcVal me, numerator, denom, otherDenom
  91.   set val = (otherDenom * numerator) / denom
  92.   return(val)
  93. end
  94.  
  95. on TextOut me
  96.   if voidP(pCurVal) then put " " into field pTextField
  97.   else put string(integer(pCurVal))&pExtraChar into field pTextField
  98. end
  99.  
  100.  
  101. on SetVal me, newVal
  102.   puppetSprite pThumbSprite, TRUE
  103.   set pCurVal = newVal
  104.   if voidP(newVal) then put pRange/2 into newVal
  105.   TextOut(me)
  106.   set loc = CalcVal(me, newVal-pMin, pRange, pSliderWidth)
  107.   set the locH of sprite pThumbSprite = pSliderLeft + loc
  108.   setFill(me)
  109.   --updateStage
  110. end
  111.  
  112. on SetEnabled me, enabled
  113.   set pActive = enabled
  114.   enableInterfaceElement(pFillSprite,enabled)
  115.   enableInterfaceElement(pThumbSprite,enabled)
  116.   enableInterfaceElement(pArrowsSprite,enabled)
  117.   enableInterfaceElement(pTextSprite,enabled)
  118. end
  119.  
  120. on Release me
  121.   -- release all puppets, constraints, etc.
  122.   puppetSprite pFillSprite, FALSE
  123.   puppetSprite pThumbSprite, FALSE
  124. end
  125.  
  126.  
  127.